ci(skills-json): normalize per-skill sha/updated in the drift gate + heal manifest#458
Merged
Merged
Conversation
…anifest The ci-skills-json gate (#457) compared the full manifest, including each skill's git-derived sha/updated. Squash-merging a skill PR rewrites that skill's commit, so the merged sha goes stale in skills.json until the next regen — making the gate false-fail the *next*, innocent skills PR. Normalize sha/updated out of the comparison alongside generated, so the gate enforces only semantic catalog fields (category/name/description/...) — the #454/#456 drift class it's meant to catch — and is immune to squash churn. Also regenerate skills.json to heal the beamr-route sha/updated drift left by #419's squash merge. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #457 / #455.
Problem: the
ci-skills-jsongate compares the fullskills.json, including each skill'sshaandupdated— which are derived fromgit log. Squash-merging a skill PR rewrites that skill's commit, so the merged skill'ssha/updatedgo stale in the committed manifest until the next regen. The result: the gate false-fails the next, innocent skills PR over drift it didn't cause. We hit this immediately — after #353 and #419 squash-merged,mainwas left drifted onctrlthenbeamr-route.Fix: normalize
sha/updatedout of the comparison alongsidegenerated, so the gate enforces only the semantic catalog fields (category/name/description/schedule/requires/ …) — the #454/#456 drift class it's actually meant to catch — and is immune to squash-merge churn.fetch-depth: 0is retained (the generator still resolves full history; the git-derived values are just normalized out of the diff).Verified locally: with the refined
norm(), the gate is green onmain; a real category/description change still trips it.Also regenerates
skills.jsonto heal thebeamr-routesha/updateddrift left by #419's squash merge, so the committed manifest is accurate.🤖 Generated with Claude Code